The growth and ubiquity of the Internet has spawned an increase in a number of connected clients as well as the bandwidth of a backhaul required to transport packets between clients and servers. Around 2000, gigabit network cards capable of transmitting data at a rate of a gigabit per second became widely used in the backhaul portions of networks. Network card technology has gradually evolved to the point that backhaul portions of networks utilized 10 gigabit network cards and are now transitioning to 40 gigabit network cards. However, 40 gigabit cards cannot achieve their theoretical bandwidths. In practice, systems cannot fully utilize a 40 gigabit link available on current network cards. Network cards with even larger links are in the process of being developed and being released to the market.
Network cards have inefficiencies related to transfer of data from the network card through a CPU. Network cards and controllers may notify a CPU that incoming packets are received, and the CPU may move data from the network card to memory over the system bus. Outgoing packets are transmitted in a similar manner. When the CPU has packets ready to transmit, the CPU may notify the NIC that there is data to send and transfer the packets over the system bus to the network cards and controllers. Many network controllers communicate over a peripheral component interconnect express (PCIe) bus, which is a high-speed serial bus.
Despite the inability to fully utilize links available on network cards, structured and unstructured data and related traffic continues to grow exponentially. Consumer demand for data services continues to increase at unprecedented levels, and a consumer's experience is optimal when data-related delays are minimized. It is believed that approximately 2.5 billion gigabytes of data are created by the Earth's population each day, and this number continues to double every 40 months. The world's ability to create and store data continues to grow, and a major challenge is related to transportation of this data as well as processing and analyzing the world's data.
Unfortunately, an upload or a download path is only as fast as its most limiting component. The limiting component may be the network, a server, or a disk drive. Although not a long term answer, many have attempted to solve this problem by simply using as much hardware as possible. However, this is inefficient, and the continual need for more hardware resources is no longer as viable of a solution as the volume and velocity of data outgrows the ability of the current hardware to process the data. In short, network throughput of the data is not keeping pace with an increasing amount of data.